\begin{tikzpicture} % 复杂
    \pgfmathsetmacro{\R}{1.5}
    \pgfmathsetmacro{\RR}{sqrt(2)*\R}
    \pgfmathsetmacro{\r}{\RR/2}

    \tkzDefPoints{0/0/O}
    \tkzDefPoint(0:\R){A}
    \tkzDefRegPolygon[center,sides=4,name=P](O,A)
    \tkzDefPoint(45:\RR){B}
    \tkzDefRegPolygon[center,sides=4,name=Q](O,B)
    \tkzDefPoint(45:\r){C}
    \tkzDefRegPolygon[center,sides=4,name=O](O,C)
    % \tkzLabelPoints[centered](P1,P...,P4)
    % \tkzLabelPoints[centered](Q1,Q...,Q4)
    % \tkzLabelPoints[centered](O1,O...,O4)
    % \tkzLabelPoints[centered](O)

    \tkzDrawPolygon[dashed](Q1,Q...,Q4)
    % \tkzDrawPolygon[dashed](P1,P...,P4)
    % \tkzDrawPolygon[dashed](O1,O...,O4)

    \foreach \i in {1,...,4} {
        \ifnum\i=4\relax
            \pgfmathsetmacro{\n}{1}
        \else
            \pgfmathsetmacro{\n}{int(\i+1)}
        \fi

        \tkzDrawArc[](P\n,Q\n)(Q\i)
    }

    \foreach \i in {1,...,4} {
        \ifnum\i=4\relax
            \pgfmathsetmacro{\n}{1}
        \else
            \pgfmathsetmacro{\n}{int(\i+1)}
        \fi

        \begin{scope}
            \tkzClipPolygon[out](O,P\i,Q\i,P\n)
            \tkzDrawArc[fill=white](O\i,P\n)(P\i)
        \end{scope}
    }
\end{tikzpicture}

